/**
 * 自己的时间操作类
 */
package com.zhao.utils;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.Locale;

public class DateUtil {
	/**
	 * 取得当天的开始时间
	 * @return
	 * String
	 * 2015年12月3日
	 */
	public static String getDayBeginTime() {
		SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		Calendar calendar = new GregorianCalendar();
		calendar.set(Calendar.HOUR_OF_DAY, 0);
		calendar.set(Calendar.MINUTE, 0);
		calendar.set(Calendar.SECOND, 0);
		return dateFormat.format(calendar.getTime());
	}
	
	/**
	 * 取得当天的最后时间
	 * @return
	 * String
	 * 2015年12月3日
	 */
	public static String getDayEndTime() {
		SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		Calendar calendar = new GregorianCalendar();
		calendar.set(Calendar.HOUR_OF_DAY, 23);
		calendar.set(Calendar.MINUTE, 59);
		calendar.set(Calendar.SECOND, 59);
		return dateFormat.format(calendar.getTime());
	}
	
	/**
	 * 获取当前日期所在周的第一天
	 * @return
	 * String
	 * 2015年12月3日
	 */
	public static String getFirstDayOfWeek() {
		SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		Calendar calendar = new GregorianCalendar(Locale.CHINESE);
		calendar.setFirstDayOfWeek(Calendar.MONDAY);
		calendar.set(Calendar.DAY_OF_WEEK, calendar.getFirstDayOfWeek());
		calendar.set(Calendar.HOUR_OF_DAY, 0);
		calendar.set(Calendar.MINUTE, 0);
		calendar.set(Calendar.SECOND, 0);
		return dateFormat.format(calendar.getTime());
	}
	
	/**
	 * 获取当前日期所在周的最后一天
	 * @return
	 * String
	 * 2015年12月3日
	 */
	public static String getLastDayOfWeek() {
		SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		Calendar calendar = new GregorianCalendar(Locale.CHINESE);
		calendar.setFirstDayOfWeek(Calendar.MONDAY);
		calendar.set(Calendar.DAY_OF_WEEK, calendar.getFirstDayOfWeek()+6);
		calendar.set(Calendar.HOUR_OF_DAY, 23);
		calendar.set(Calendar.MINUTE, 59);
		calendar.set(Calendar.SECOND, 59);
		return dateFormat.format(calendar.getTime());
	}
	
	/**
	 * 获取当前月第一天
	 * @return
	 * String
	 * 2015年12月3日
	 */
	public static String getFirstDayOfMonth() {
		SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		Calendar calendar = new GregorianCalendar(Locale.CHINESE);
		calendar.set(Calendar.DAY_OF_MONTH,1);
		calendar.set(Calendar.HOUR_OF_DAY, 0);
		calendar.set(Calendar.MINUTE, 0);
		calendar.set(Calendar.SECOND, 0);
		return dateFormat.format(calendar.getTime());
	}
	
	/**
	 * 获取当前月最后一天
	 * @return
	 * String
	 * 2015年12月3日
	 */
	public static String getLastDayOfMonth() {
		SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		Calendar calendar = new GregorianCalendar(Locale.CHINESE);
		calendar.set(Calendar.DAY_OF_MONTH,1);
		calendar.roll(Calendar.DATE, -1);
		calendar.set(Calendar.HOUR_OF_DAY, 23);
		calendar.set(Calendar.MINUTE, 59);
		calendar.set(Calendar.SECOND, 59);
		return dateFormat.format(calendar.getTime());
	}
}
